[Jenkins] pipeline job update api 개발

您所在的位置:网站首页 jenkins crumb [Jenkins] pipeline job update api 개발

[Jenkins] pipeline job update api 개발

#[Jenkins] pipeline job update api 개발| 来源: 网络整理| 查看: 265

[ Jenkins - pipeline job update api ] jenkins 에서 pipeline 로 생성한 job 을 수정 해야 할 일이 생김. API문서를 찾아본 결과 job을 수정하는 APi는 없음 API정리한 곳은 아래의 링크 참고 https://github.com/kkimsungchul/study/blob/master/Jenkins/[jenkins] Jenkins 에서 사용할수 있는 restAPI 정리.txt

그래서.. 직접 API 를 만들어봄 작업 방법 1. Jenkins에서 pipeline job 을 생성 2. 수정 페이지에서 데이터 수정 3. 수정 시 서버로 넘어가는 데이터를 분석 젠킨스 수정 URL 정보 header : Authorization : jenkins ID 와 Jenkins API TOKEN 으로 만든 토큰 만드는 방법은 id:token 으로 묶어서 base64 로 인코딩 ex) 91296885:11d376523445b369ecbdfa3e6cfc30760e 적용시에는 앞에 Basic 을 붙여줘야함, Authorization = Basic OTEyOTY4ODU6MTFkMzc2NTIzNDQ1YjM2OWVjYmRmYTNlNmNmYzMwNzYwZQ== ※ 해당 키값을 서버에서 만들어서 사용해야 할 경우 java HttpHeaders 클래스의 setBasicAuth 메소드를 통해서 자동으로 발급함 ※ id:pw 로는 안됨 무조건 토큰으로 해야 함 URL : https://[jenkinsURL]/job/[폴더명]/job/[JOB명]/configSubmit method : post data-type : form data 필드 : description : 프로젝트 설명 json : pipeline 에 들어갈 스크립트 내용 data ex) description = f3f3f3f3f3 json = {"description": "f3f3f3f3f3","definition":{ "script":"pipeline {\n\tagent any\n\t\tstages {\n\t\t\tstage('Deploy') {\n\t\t\t\tsteps {\n\t\t\t\t\tsh \"ls -al\"\n\t\t\t}\n\t\t}\n\t}\n}", "sandbox":true, "stapler-class":"org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition", "$class":"org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" }} ※ 위와같이 form 데이터 형식으로 넘기며, json 필드에 값으로 json 데이터를 넣어주되, script 에서다가는 파이프라인에서 사용할 데이터를 넣어주면 됨 script 수정 시 sandbox , stapler-class , $class 값은 필수임 수정 실행 POST 방식으로 위의 URL "https://kscjenkins.co.kr/job/update_test_folder/job/remote_updateTest/configSubmit" 에 헤더에는 인증키값, 데이터에는 form 방식으로 넣어서 전송 실제 넘어가는 데이터 아래의 데이터는 실제로 submit 실행 시 넘어가는 데이터인데, 이게 다 필요하지 않은거 같아서 테스트 하다가 위의 데이터만으로 수정되는 것을 발견한 것임. 뭐 추가적으로 더 수정할 경우 아래의 데이터를 넣어주면 될듯 description: cdddd stapler-class-bag: true stapler-class: org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy $class: org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy stapler-class: org.jenkinsci.plugins.matrixauth.inheritance.InheritGlobalStrategy $class: org.jenkinsci.plugins.matrixauth.inheritance.InheritGlobalStrategy stapler-class: org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy $class: org.jenkinsci.plugins.matrixauth.inheritance.NonInheritingStrategy _.projectUrlStr: _.displayName: hint: MAX_SURVIVABILITY _.buildCount: 1 _.count: 1 _.durationName: second _.daysToKeepStr: _.numToKeepStr: _.artifactDaysToKeepStr: _.artifactNumToKeepStr: stapler-class: hudson.tasks.LogRotator $class: hudson.tasks.LogRotator stapler-class-bag: true _.upstreamProjects: ReverseBuildTrigger.threshold: SUCCESS _.spec: _.scmpoll_spec: quiet_period: 5 authToken: _.displayNameOrNull: _.script: ababababababababababababab _.sandbox: on stapler-class: org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition $class: org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition stapler-class: org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition $class: org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition core:apply: Jenkins-Crumb: 1526af24621dca6a8ceb72013e12d29319a49e4b9c294a412f4e8edadd4d8466 json: {"description": "cdddd", "properties": {"stapler-class-bag": "true", "hudson-security-AuthorizationMatrixProperty": {}, "org-jenkinsci-plugins-workflow-job-properties-DisableConcurrentBuildsJobProperty": {"specified": false}, "org-jenkinsci-plugins-workflow-job-properties-DisableResumeJobProperty": {"specified": false}, "com-coravy-hudson-plugins-github-GithubProjectProperty": {}, "org-jenkinsci-plugins-workflow-job-properties-DurabilityHintJobProperty": {"specified": false, "hint": "MAX_SURVIVABILITY"}, "org-jenkinsci-plugins-pipeline-modeldefinition-properties-PreserveStashesJobProperty": {"specified": false, "buildCount": "1"}, "jenkins-branch-RateLimitBranchProperty$JobPropertyImpl": {}, "jenkins-model-BuildDiscarderProperty": {"specified": false, "": "0", "strategy": {"daysToKeepStr": "", "numToKeepStr": "", "artifactDaysToKeepStr": "", "artifactNumToKeepStr": "", "stapler-class": "hudson.tasks.LogRotator", "$class": "hudson.tasks.LogRotator"}}, "hudson-model-ParametersDefinitionProperty": {"specified": false}, "org-jenkinsci-plugins-workflow-job-properties-PipelineTriggersJobProperty": {"triggers": {"stapler-class-bag": "true"}}}, "disable": false, "hasCustomQuietPeriod": false, "quiet_period": "5", "displayNameOrNull": "", "": "0", "definition": {"script": "ababababababababababababab", "": ["try sample Pipeline...", "\u0001\u0001"], "sandbox": true, "stapler-class": "org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition", "$class": "org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition"}, "core:apply": "", "Jenkins-Crumb": "1526af24621dca6a8ceb72013e12d29319a49e4b9c294a412f4e8edadd4d8466"} Submit: 저장 ← Previous Post Next Post →


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3